A graphics application may be executed on a computer and may result in rendering a graphic display on a computer monitor or other display. The graphics application may include program code for various aspects related to the rendering. For example, one part of the program code may be related to mesh, another part may be related to lighting, and another part may be related to texture. To render a graphic on a display, the program code may be sent from a graphics file to a video card and may include a pixel, vertex, and other types of shader as well as values for the render state, mesh, lighting, and texture, which are consumed by the shaders. The graphics file thus includes a structure for setting the state of the video card and the code and data used for the rendering. The graphics file may include names for related portions of the section of data. For example, one section may be “WorldMatrix,” another “lightArray” and another “color.”
Generally, various graphics applications may perform similar functions when rendering an image. For example, a vertex shader program may include data for a world matrix, view matrix, and projection matrix. A problem exists because there may be no standardization for the names of the various sections of data in the graphics file. For example, graphics programmers may want to share graphics files, but there may be no standard naming protocol to indicate to a programmer which data represents a world matrix, which represents a view matrix, and which represents a projection matrix. This is true of other aspects of rendering an image, such as with texture, lighting, and color, for example. An application may not be able to use a graphics file that was not specifically written for the application because the application may not be able to discern which values to set into what named section of the graphics file's data section.
Therefore, there is a need for a standardization of graphics files and runtime environments such that a graphics file developed independent of and without regard to a particular runtime environment may be executed in that runtime environment without requiring modification or study.